perm filename LOCKH.DOC[PIC,HE] blob sn#308103 filedate 1977-09-22 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Lockheed picture format
C00007 ENDMK
C⊗;
Lockheed picture format

Tape format

  2052 words/record     integers
  16 bits/word

  for 512x512 pixel images
  they have 4 lines/record (with 4 unused words)
  lines are horizontal
  9 bits per pixel in range 0-511
  Text of header file in words 31-70



Image file header record info

word	name	meaning
1	ipsb	storage bits per pixel
2 	isize	code for image size quanta
3	ixl	horizontal file length in pixels
4	iyl	vertical file length in pixels
5	imode	file storage mode (horiz or vertical)
6	ipib	information bits per pixel
7-9	date	month, day,, and year from rdos system call
10-12	time	hour, minute, and second from rdos system call
13	ipps	pixel pre-pack bit shift amount
14	ipus	pixel post-unpack bit shift amount
15	ixs     horizontal starting position
16	iys     vertical starting position
17	idt	data type of pixel elements
18	isf	scale factor of pixel elements
19	ipob	offset bits (low-order) per pixel
20	imsk	pixel pre-display post-shift "and" mask
21	ihvn	header format version number
22	nwe	number of words/element
23-30 		currently undefined; set to zero
31-70	text	text string for user comments
71-256		currently undefined; set to zero

Explanations
Header Format Evolution:  The header format
  version number defines what the rest of the header rcord
  contains and how it is to be interpreted.
For version 1: Th pixel data format is defined by ipsb, ipib, ipob, idt, and imsk.
  The stored pixel values are not packed, ie, ther is one pixel per word
  always.  Within the word, the pixel value can or will be shifted
  right or left when displaying and/or keeping.  The subroutine ALTER
  is used for shifting and/or masking; if neither operation is wanted,
  the data is ready in the same buffer and no time is wasted moving and preparing
  data.  For displaying, the "and" mask IMSK is appεied--after any shifting
  is finished to remove undesired bits in the word.
  An imsk value of 0 causes the masking operation to be avoided; it is logically 
  equivalent to a value of -1.
  Data model        ----xxxxxxxx----
                         ipib=8  ipob=4
                      ipsb=16
  For any data movement operation, a default signed shift is automatically 
  computed and undertaken unless the user explicitly specifies an alternate 
  value to be used.  The default shift amount--given by the equation 
  below--is designed so that alignment occurs with respect to the highest-order
  information bit.  Scanner core pixel data format is assumed to be ipsb=16,
  ipib=9, and ipob=8.  ishift=(ipib+ipob)new-(ipib+ipob)old.
  Note that ipps and ipus are not utilized for header format version 1.